// 引入vue路由
import VueRouter from "vue-router";
// 引入About组件
import About from "../pages/About";
// 引入Home组件
import Home from "../pages/Home";
// 引入Home嵌套子组件Message组件
import Message from "../pages/Message";
// 引入Home嵌套子组件News组件
import News from "../pages/News";
// 引入Home嵌套子组件News组件的嵌套子组件Detail组件
import Detail from "../pages/Detail";


// 创建并暴露路由
const router =  new VueRouter({
    routes:[
        // 一级路由
        {
            name:'about',
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home,
            alias:'/hhome',
            children:[
                // 二级路由
                {
                    name:'message',
                    path:'message',
                    component:Message,
                    children:[
                        // 三级路由
                        {
                            name:'detail',
                            path:'detail',
                            component:Detail,
                            props:$route=>{
                                return {
                                    id:$route.query.id,
                                    title:$route.query.title,
                                }
                            }
                        }
                    ]
                },
                {
                    name:'news',
                    path:'news',
                    component:News
                }
            ]
        },
    ]
})

// beforeEach 前置路由守卫
// 通过router...去定义的路由守卫属于全局路由守卫，针对所有路由都有效
router.beforeEach((to,from,next)=>{
    // to 存储目标路由的一些信息
    // from 存储当前路由的一些信息
    // next 代表放行，即允许跳转。如果不允许，则不会跳转，路由url也不会改变。但路由守卫同样触发
    console.log("beforeEach前置路由守卫触发了");
    console.log("to",to);
    console.log("from",from);

    if(to.name=="message" || to.name == "news"){
        if(localStorage.getItem('school')=="atguigu"){
            console.log("学校名正确，放行");
            next();
        }else{
            alert('学校名不对，跳转失败')
        }
    }else{
        console.log("不需要检测学校名的路由组件");
        next()
    }
})

export default router